package ch.ifage.business.dom;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 * Element qui identifie une étape de manière unique.
 * @author Christian
 *
 */
@Embeddable
public class StepIdentity implements Serializable {

	/**
	 * serial uid.
	 */
	private static final long serialVersionUID = -6996731761431483297L;
	
	/**
	 * Identifiant unique de l'étape.
	 */
	@Column(name = "UID")
	private Integer uid;
	/**
	 * Nom du serveur sur lequel le job s'est exécuté.
	 */
	@Column(name = "SERVER_NAME")
	private String serverName;
	/**
	 * Nom de l'instance dans laquelle le job s'est exécuté.
	 */
	@Column(name = "INSTANCE_NAME")
	private String instanceName;
	
	/**
	 * @param uid identifiant de l'étape.
	 * @param serverName nom du serveur sur lequel l'étape a été exécutée.
	 * @param instanceName nom de l'instance dans laquelle l'étape a été exécutée.
	 */
	public StepIdentity(final Integer uid, final String serverName, final String instanceName) {
		super();
		this.uid = uid;
		this.serverName = serverName;
		this.instanceName = instanceName;
	}
	
	/**
	 * empty constructor.
	 */
	public StepIdentity() {
		super();
	}
	
	/**
	 * @return uid l'identifiant de l'entrée.
	 */
	public final Integer getUid() {
		return uid;
	}

	/**
	 * @param uid l'identifiant de l'entrée.
	 */
	public final void setUid(final Integer uid) {
		this.uid = uid;
	}

	/**
	 * @return le nom du serveur.
	 */
	public final String getServerName() {
		return serverName;
	}

	/**
	 * @param serverName le nom du serveur.
	 */
	public final void setServerName(final String serverName) {
		this.serverName = serverName;
	}

	/**
	 * @return le nom de l'instance.
	 */
	public final String getInstanceName() {
		return instanceName;
	}

	/**
	 * @param instanceName le nom de l'instance
	 */
	public final void setInstanceName(final String instanceName) {
		this.instanceName = instanceName;
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public final String toString() {
		return "StepIdendity [ID serveur=" + this.serverName 
				              + " instance=" + this.instanceName
				              + " uid=" + this.uid + "]";
	}

}